//package com.cnsunrun.framworksimple.activity;
//
//import android.support.v4.widget.SwipeRefreshLayout;
//import android.support.v7.widget.RecyclerView;
//
//import com.chad.library.adapter.base.BaseQuickAdapter;
//import com.sunrun.sunrunframwork.adapter.ViewHolderAdapter;
//import com.sunrun.sunrunframwork.uiutils.paging.IAdapter;
//import com.sunrun.sunrunframwork.uiutils.paging.IRefresh;
//import com.sunrun.sunrunframwork.uiutils.paging.PageLimitDelegate;
//import com.sunrun.sunrunframwork.uiutils.paging.UniqueEntity;
//
//import java.util.List;
//
///**
// * 刷新分页功能代理类,对不同的刷新加载,采用不同的方式进行配置
// * Created by WQ on 2017/7/29.
// */
//
//public class RefreshPoxy {
//
//    /**
//     * SwipeRefreshLayout +  BaseQuickAdapter
//     * 原生下拉刷新的配置
//     * @param pageLimitDelegate
//     * @param refreshLayout
//     * @param quickAdapter
//     * @param recyclerView
//     * @param <T>
//     */
//    public static <T extends UniqueEntity> void attach(final PageLimitDelegate<T> pageLimitDelegate, final SwipeRefreshLayout refreshLayout, final BaseQuickAdapter quickAdapter, RecyclerView recyclerView) {
//        quickAdapter.disableLoadMoreIfNotFullPage(recyclerView);
//        pageLimitDelegate.attach(new IRefresh() {
//            @Override
//            public void setEnabled(boolean enabled) {
//                refreshLayout.setEnabled(enabled);
//            }
//
//            @Override
//            public void setEnableLoadMore(boolean enabled) {
//                quickAdapter.setEnableLoadMore(enabled);
//            }
//
//            @Override
//            public void loadMoreComplete() {
//                quickAdapter.loadMoreComplete();
//            }
//
//            @Override
//            public void setRefreshing(boolean enabled) {
//                refreshLayout.setRefreshing(enabled);
//            }
//        }, new IAdapter<T>() {
//            @Override
//            public void addData(List<T> data) {
//                quickAdapter.addData(data);
//            }
//
//            @Override
//            public void setNewData(List<T> data) {
//                quickAdapter.setNewData(data);
//            }
//
//            @Override
//            public List<T> getData() {
//                return quickAdapter.getData();
//            }
//        });
//        quickAdapter.setOnLoadMoreListener(new BaseQuickAdapter.RequestLoadMoreListener() {
//            @Override
//            public void onLoadMoreRequested() {
//                pageLimitDelegate.loadMorePage();
//            }
//        },recyclerView);
//        refreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
//            @Override
//            public void onRefresh() {
//                pageLimitDelegate.refreshPage();
//            }
//        });
//    }
//
//    /**
//     * PullToRefresh + ViewHolderAdapter
//     * ListView 原始版下拉刷新的配置
//     * @param pageLimitDelegate
//     * @param refreshLayout
//     * @param quickAdapter
//     * @param <T>
//     */
//    public static <T extends UniqueEntity> void attach(final PageLimitDelegate<T> pageLimitDelegate, final PullToRefreshBase refreshLayout, final ViewHolderAdapter quickAdapter) {
//        pageLimitDelegate.attach(new IRefresh() {
//            @Override
//            public void setEnabled(boolean enabled) {
//                refreshLayout.setEnabled(enabled);
//            }
//
//            @Override
//            public void setEnableLoadMore(boolean enabled) {
//                refreshLayout.setMode(enabled? PullToRefreshBase.Mode.BOTH: PullToRefreshBase.Mode.PULL_FROM_START);
//            }
//
//            @Override
//            public void loadMoreComplete() {
//                refreshLayout.onRefreshComplete();
//            }
//
//            @Override
//            public void setRefreshing(boolean enabled) {
//                refreshLayout.setRefreshing(enabled);
//            }
//        }, new IAdapter<T>() {
//            @Override
//            public void addData(List<T> data) {
//                quickAdapter.getData().addAll(data);
//                quickAdapter.notifyDataSetChanged();
//            }
//
//            @Override
//            public void setNewData(List<T> data) {
//                quickAdapter.setData(data);
//                quickAdapter.notifyDataSetChanged();
//            }
//
//            @Override
//            public List<T> getData() {
//                return quickAdapter.getData();
//            }
//        });
//        refreshLayout.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2() {
//            @Override
//            public void onPullDownToRefresh(PullToRefreshBase refreshView) {
//                pageLimitDelegate.refreshPage();
//            }
//
//            @Override
//            public void onPullUpToRefresh(PullToRefreshBase refreshView) {
//                pageLimitDelegate.loadMorePage();
//            }
//        });
//    }
//
//}
